package com.fy.common.entity;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.enums.IdType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * sk_im_chat_session
 * @author zhshuo
 */
@Data
@Accessors(chain = true)
@ApiModel(value="会话保存")
public class SkImChatSession implements Serializable {

    @TableId(type = IdType.ID_WORKER)
    private Long id;

    /**
     * 会话ID
     */
    @ApiModelProperty(value="会话ID")
    private String sessionId;

    /**
     * 主用户ID
     */
    @ApiModelProperty(value="主用户ID")
    private Long skImUserId;

    /**
     * 目标对象ID
     */
    @ApiModelProperty(value="目标对象ID")
    private Long targetId;

    /**
     * 类型1 好友 2 群组
     */
    @ApiModelProperty(value=" 类型1 好友 2 群组")
    private Integer type;

    /**
     * 消息类型
     */
    @ApiModelProperty(value="消息类型")
    private String msgCmd;

    /**
     * 未读数
     */
    @ApiModelProperty(value="未读数")
    private int unreadCount;

    /**
     * 是否置顶
     */
    @ApiModelProperty(value="是否置顶")
    private Boolean isTop;

    /**
     * 置顶事件
     */
    @ApiModelProperty(value="置顶事件")
    private Date topTime;

    private Boolean isMute;

    /**
     * 状态 0 正常
     */
    @ApiModelProperty(value="状态 0 正常 1 封禁 -1好友删除导致会话删除")
    private Integer status;

    /**
     * 会话聊天记录最后删除时间
     */
    @ApiModelProperty(value="会话聊天记录最后删除时间")
    private Date lastDeleteTime;

    /**
     * 会话聊天记录最后删除时间
     */
    @ApiModelProperty(value="最后一次删除会话的类型0正常 1 删除会话 2 清空聊天记录")
    private Integer lastDeleteType;

    /**
     * 租户号
     */
    @ApiModelProperty(value="租户号")
    private String tenantId;

    /**
     * 乐观锁
     */
    @ApiModelProperty(value="乐观锁")
    private String revision;

    /**
     * 创建人
     */
    @ApiModelProperty(value="创建人")
    private Long createBy;

    /**
     * 创建时间
     */
    @ApiModelProperty(value="创建时间")
    private Date createTime;

    /**
     * 更新人
     */
    @ApiModelProperty(value="更新人")
    private Long lastUpdateBy;

    /**
     * 更新时间
     */
    @ApiModelProperty(value="更新时间")
    private Date lastUpdateTime;

    /**
     *
     */
    @TableField(exist = false)
    private Date lastMsgTime;
    /**
     * 最后一条消息
     */
    @TableField(exist = false)
    private String content;
    @TableField(exist = false)
    private String cmd;
    @TableField(exist = false)
    private Integer contentType;


    /**
     *
     */
    @TableField(exist = false)
    private String chatTitle;

    /**
     *
     */
    @TableField(exist = false)
    private String avatar;


    private static final long serialVersionUID = 1L;

    public Boolean getTop() {
        return isTop;
    }

    public Boolean getMute() {
        return isMute;
    }
}